#include <napi.h>
#include "base64.h"
// #include <iostream>

using namespace Napi;

Napi::String Method(const Napi::CallbackInfo& info) {
  Napi::Env env = info.Env();
  return Napi::String::New(env, "world");
}
Napi::String encodeB64(const Napi::CallbackInfo& info) {
  Napi::Env env = info.Env();
  // 接收参数
   std::string rest0_original = info[0].As<Napi::String>();
  // 调用处理
  // std::string rest0_original = "abc";
  std::string rest0_encoded = base64_encode(reinterpret_cast<const unsigned char*>(rest0_original.c_str()),
  rest0_original.length());
  // 返回处理
  return Napi::String::New(env, rest0_encoded);
}

Napi::Object Init(Napi::Env env, Napi::Object exports) {
  exports.Set(Napi::String::New(env, "HelloWorld"),
              Napi::Function::New(env, Method));
  exports.Set(Napi::String::New(env, "encodeB64"),
              Napi::Function::New(env, encodeB64));
  return exports;
}

NODE_API_MODULE(addon, Init)
